Sort (Unix)
U Operativnim sistemima zasnovanim na Unix-u sort je standardni program komandne linije koji štampa linije ulazne vrednosti koja se zadaje preko komandne linije u uređenom poretku. Sortiranje se bazira na jednom ili više ključeva koji se uzimaju iz svake linije ulazne vrednosti. Po difoltu, celo ulaz se uzima kao ključ. Prazno polje je podrazimevan separator.
Primeri
[уреди | уреди извор]Sortiranje po abecedi
[уреди | уреди извор]$ cat phonebook Smith, Brett 555-4321 Doe, John 555-1234 Doe, Jane 555-3214 Avery, Cory 555-4132 Fogarty, Suzie 555-2314 $ sort phonebook Avery, Cory 555-4132 Doe, Jane 555-3214 Doe, John 555-1234 Fogarty, Suzie 555-2314 Smith, Brett 555-4321
Sortiranje po broju
[уреди | уреди извор]-n
opcija sortira po numeričkoj vrednosti:
$ du /bin/* | sort -n 4 /bin/domainname 24 /bin/ls 102 /bin/sh 304 /bin/csh
Sortiranje direktorijuma po veličini dokumenata
[уреди | уреди извор]$ ls -s | sort -n 96 Nov1.txt 128 _arch_backup.lst 128 _arch_backup.lst.tmp 1708 NMON
U starijim verzijama programa, +1
opcija je sortirala na osnovu druge kolone inputa (+2
za treću, itd.). Ovo je zastarelo, i umesto toga -k
opcija postiže istu stvar ("-k 2
" za drugu kolonu):
$ cat zipcode Adam 12345 Bob 34567 Joe 56789 Sam 45678 Wendy 23456 $ sort -nk 2 zipcode Adam 12345 Wendy 23456 Bob 34567 Sam 45678 Joe 56789
Sortiranje na više polja
[уреди | уреди извор]Opcija -k m,n
sortira određeno polje (početak na m
, kraj na n
):
$ cat quota bob 1000 an 1000 chad 1000 don 1500 eric 5000 fred 2000 $ sort -k2n,2 -k1,1 quota an 1000 bob 1000 chad 1000 don 1500 fred 2000 eric 5000
-k2
je za drugu kolonu, n
je za sortiranje po numeričkoj vrednosti.
Sortiranje datoteke koja je delimitirana pipe-om
[уреди | уреди извор]$ sort -t'|' -k2 zipcode Adam|12345 Wendy|23456 Bob|34567 Sam|45678 Joe|56789
Sortiranje datoteke koja je delimitirana tabulatorom
[уреди | уреди извор]Sortiranje datoteke sa vrednostima odvojenim tabulatorom zahteva da se navede karakter za tabulator kao delimiter kolone. U ovoj ilustraciji je korišćena dolar-navodnik notacija shell-a[1][2] kako bi se označio tabulator kao C "escape" sekvenca.
$ sort -k2,2 -t $'\t' phonebook Doe, John 555-1234 Fogarty, Suzie 555-2314 Doe, Jane 555-3214 Avery, Cory 555-4132 Smith, Brett 555-4321
Sortiranje u opadajućem poretku
[уреди | уреди извор]Opcija -r
obrće vrednost sort-a:
$ sort -nrk 2 zipcode Joe 56789 Sam 45678 Bob 34567 Wendy 23456 Adam 12345
Nasumično sortiranje
[уреди | уреди извор]GNU implementacija ima "--random-sort" opciju.
Algoritam za sortiranje
[уреди | уреди извор]Implementacija u "GNU Core Utilities", koja se koristi u Linux-u, koristi algoritam sortiranja objedinjavanjem.
Reference
[уреди | уреди извор]- ^ „The GNU Bash Reference Manual, for Bash, Version 4.2: Section 3.1.2.4 ANSI-C Quoting”. Free Software Foundation, Inc. 28. 12. 2010. Приступљено 1. 2. 2013. „Words of the form $'string' are treated specially. The word expands to string, with backslash-escaped characters replaced as specified by the ANSI C standard.”
- ^ „KornShell FAQ”. Архивирано из оригинала 22. 05. 2013. г. Приступљено 1. 2. 2013. „The $'...' string literal syntax was added to ksh93 to solve the problem of entering special characters in scripts. It uses ANSI-C rules to translate the string between the '...'.”